package main

import (
	"text/template"
	"xmshop-gin/models"
	"xmshop-gin/routers"

	"github.com/gin-contrib/sessions"
	"github.com/gin-contrib/sessions/cookie"
	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()
	//自定义模板函数  注意要把这个函数放在加载模板前
	r.SetFuncMap(template.FuncMap{
		"UnixToTime": models.UnixToTime,
		"Str2Html":   models.Str2Html,
		"FormatImg":  models.FormatImg,
		"Sub":        models.Sub,
		"Mul":        models.Mul,
		"Substr":     models.Substr,
		"FormatAttr": models.FormatAttr,
	})
	// 加载模板，放在设置路由前面
	r.LoadHTMLGlob("templates/**/**/*")
	// 配置静态资源目录
	r.Static("/static", "./static")

	// 创建基于 cookie 的存储引擎，secret11111 参数是用于加密的密钥
	store := cookie.NewStore([]byte("secret111"))
	//配置session的中间件 store是前面创建的存储引擎，我们可以替换成其他存储引擎
	r.Use(sessions.Sessions("mysession", store))

	// 配置路由
	routers.AdminRoutersInit(r)
	routers.DefaultRoutersInit(r)
	routers.FrontRoutersInit(r)

	// 启动项目
	r.Run("127.0.0.1:8000")
}
